<?php
namespace app\common\model;

use think\Db;
use think\Model;

/**  YSF
 *   优惠券分类
 *   Date: 2018/11/30
 * Class CouponCateModel
 * @package app\common\model
 */
class CouponCateModel extends Model
{
    // 表名
    protected $name = 'coupon_cate';

    // 单表列表查询
    public function getAll($where=[],$field='*',$page=1,$pageSize=999,$order='')
    {
        $result = $this->where($where)
                    ->field($field)
                    ->page($page, $pageSize)
                    ->order($order)
                    ->select();
        return $result;
    }

    // 单表数量查询
    public function getCount($where=[])
    {
        $result = $this->where($where)->count();
        return $result;
    }

    // 添加优惠券
    public function add($data=[])
    {
        // 开始事务
        Db::startTrans();
        try{
            // 1-- 添加分类信息
            $cid = $this->allowField(true)->insertGetId($data);
            // 2-- 添加优惠券信息
            $arr['cid'] = $cid;
            $arr['type'] = $data['put_type'];
            if ($arr['type'] != 1) { // 不等于新用户注册
                for ($i = 0; $i < $data['total_num']; $i++)
                {
                    $arr['code'] = generate_promotion_code();
                    Db::name('coupon')->insert($arr); // 写入优惠券列表
                }
            }

            // 事务提交
            Db::commit();
            return true;
        } catch (\Exception $e) {
            // 事务回滚
            Db::rollback();
            return false;
        }

    }

    // 删除操作
    public function del($where=[])
    {
        $result = $this->where($where)->delete();
        return $result;
    }

    // 单表单条查询
    public function getOne($where=[],$field='*')
    {
        $result = $this->where($where)->field($field)->find();
        return $result;
    }

    // 单表编辑
    public function edit($where=[], $data=[])
    {
        $result = $this->where($where)->update($data);
        return $result;
    }


}